// const baseUrl = '/api'  // 后端地址
const baseUrl = 'http://localhost:8000'  // 后端地址

export default function request({ url, method = 'GET', data = {}, header = {} }) {
    const token = uni.getStorageSync('token') || ''

    // 不需要携带 token 的白名单接口
    const whiteList = ['/user/login', '/user/getCode','/user/reg']

    // 是否需要加 token（不在白名单中则加）
    const isNeedToken = !whiteList.includes(url)

    // 构造最终 header
    const finalHeader = {
        'Content-Type': 'application/json',
        ...header
    }

    if (isNeedToken && token) {
        finalHeader['Authorization'] = `Bearer ${token}`
    }

    return new Promise((resolve, reject) => {
        uni.request({
            url: baseUrl + url,
            method,
            data,
            header: finalHeader,
            success: (res) => {
                if (res.statusCode === 200) {
                    if (res.data.code === 200) {
                        resolve(res.data) // 后端接口真正返回的数据
                    } else {
                        uni.showToast({
                            title: res.data.message || '请求出错',
                            icon: 'none'
                        })
                        reject(res.data)
                    }
                } else {
                    uni.showToast({
                        title: '服务器错误',
                        icon: 'none'
                    })
                    reject(res)
                }
            },
            fail: (err) => {
                uni.showToast({
                    title: '网络请求失败',
                    icon: 'none'
                })
                reject(err)
            }
        })
    })
}
